package com.tedu.api.io;

import org.apache.commons.imaging.*;
import org.junit.Test;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

/**
 * IO流---针对  图片
 *
 * 项目结构：Maven互联网型项目
 *       功能：下载第三方的jar包【高手写好类，压缩jar文件---引入---使用类】
 *       第三方jar官方下载地址：百度搜：mvn仓库：https://mvnrepository.com/  搜索：commons-imaging
 *
 *       Apache Image   包    ：针对IO流   图片传输流---封装
 *                              处理各种图像格式外置包
 *                             入写出---JPEG，PNG,GIF,TIFF等
 *   研究   第三方    xxx.jar   百度搜索 ：  Apache  Commons   Imaging   使用
 *   类中存在大量静态块，通过类名直接调用
 *   使用Apache  Commons   Imaging   jar【包---压缩文件叫法
 *                                        库--实用类叫法
 *                                        】
 *
 */
public class ImageFile {
    /**
     * Imaging   提供一套读写图片流方法
     * 读：getBufferedImage()  可以通过File文件路径找到一个图片
     *                                         并且打印图片信息【宽高】
     */
    @Test
    public void testIg() throws IOException, ImageReadException {
        //1.创建File文件类---找到图片：路径地址+图片全称
        File file=new File("2.png");
        //2.Imaging 图片类，静态方法getBufferedImage()   获取图片信息
        Imaging.getBufferedImage(file);
        BufferedImage bi=Imaging.getBufferedImage(file);
        //3.获取图片信息
       int height= bi.getHeight();
       int width= bi.getWidth();
        System.out.println("图片宽："+width+"高："+height);

    }
/**
 * writeImage(读入图片，写出图片位置，图片格式，null)
 * 写出一个图片，先读入一张图片，然后再写出
 */
@Test
    public void testWI() throws IOException, ImageReadException, ImageWriteException {
    //1.读入一张图片
    File fie=new File("2.png");
    BufferedImage bi=Imaging.getBufferedImage(fie);
    //2.写出图片路径+全称
    File desc=new File("ma.png");
    //3.Imaging 类----调用静态方法
    //ImageFormats  类
    //version1   ImageFormat.format("png");  指定图片格式
    //version2   ImageFormat.PNG      静态常量属性
    Imaging.writeImage(bi,desc, ImageFormats.PNG,null);
    System.out.println("写出成功~~");


}
@Test
    public void testBI() throws IOException, ImageReadException {
    File file=new File("wzd.jpg");
    Imaging.getBufferedImage(file);
    BufferedImage bis=Imaging.getBufferedImage(file);
   int width= bis.getWidth();
   int heiht= bis.getHeight();
    System.out.println("宽："+width+"高"+heiht);

}
@Test
    public void testWW() throws ImageWriteException, IOException, ImageReadException {
    File file=new File("wzd.jpg");
   BufferedImage bis= Imaging.getBufferedImage(file);
   File desc=new File("wz.jpg");
   Imaging.writeImage(bis,desc,ImageFormats.PNG,null);
    System.out.println("成功");

}}

